/*
 * @Author: 涵崽
 * @Date: 2021-06-29 20:09:00
 * @email: 1045654@qq.com
 * @gitee: https://gitee.com/han-zai
 * @LastEditors: 涵崽
 * @LastEditTime: 2023-12-12 15:43:24
 * @Description: express 本地服务器
 * 
 * 使用前 请先npm i 
 * static文件夹用于存放需要托管的文件。文件夹名可随意更改
 * 
 * 输入本机ip地址加上端口号
 * 列如:192.168.1.10:5005
 */
// 导入 express 模块，这是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架。
const express = require("express");

// 导入 connect-history-api-fallback 中间件，这个中间件可以帮助你在前端路由改变时，始终让服务端返回 index.html 文件，实现了在所有设备上的平滑导航。这对于单页应用(SPA)来说非常重要。
const history = require("connect-history-api-fallback");

// 创建一个新的 express 应用实例。
const app = express();

// 使用 connect-history-api-fallback 中间件。如果需要使用这个中间件，必须将它放在静态文件中间件（express.static）之前，否则无法正常工作。因为 express.static 中间件会拦截所有的 GET 请求，而 connect-history-api-fallback 需要监听这些请求来判断是否需要返回 index.html 文件。
app.use(history());

// 使用 express.static 中间件，用于服务静态文件，比如 CSS、JavaScript 文件等。这里设置的路径是 __dirname+'/static'，意思是当前目录下的 static 文件夹。
app.use(express.static(__dirname + "/static"));

// 监听端口 5005，当有新的连接时，就会执行这个函数。如果出现错误，就会打印一条错误信息；否则，就会打印一条服务器启动成功的消息。
app.listen(5005, err => {
  if (!err) console.log("服务器启动成功了！");
});
